﻿using System.Collections.Generic;
using Engine.Sgml.Validation;

namespace Engine.Sgml.Allocation {
    /// <summary>
    /// Provides a mechanism by which <c>SElement</c> object can be allocated in a document structure.
    /// </summary>
    internal interface IAllocationStrategy {
        /// <summary>
        /// Allocates a collection of inconsistent block in a document structure.
        /// </summary>
        /// <param name="blocks">An inconsistent blocks.</param>
        /// <param name="context">An <c>AllocationContext</c> object.</param>
        void Allocate(IList<BlockItem> blocks, AllocationContext context);
        }
    }
